package com.dbms;

import java.util.ArrayList;
import java.util.List;

/**
 * 存储过程参数管理
 * @author yunxiangfu@163.com
 * 
 *
 */
public class CallParameterList {

	private List<CallParameter> list;
	public CallParameterList(){
		list = new ArrayList<CallParameter>();
	}
	/**
	 * 存储过程所用
	 * @param value 参数值
	 */
	public void add(Object value){
		list.add(new CallParameter(value,SQLTool.getObjectType(value)));
	}
	/**
	 * 存储过程所用
	 * @param value 参数值
	 * @param inType 数据类型
	 */
	public void add(Object value,int inType){
		list.add(new CallParameter(value,inType));
	}
	/**
	 * 存储过程所用
	 * @param type 返回数据类型
	 * @param c 返回结果集的类型
	 * @param isString 返回结果集是否已String方式获取
	 */
	public void add(int type,Class<?> c,boolean isString){
		list.add(new CallParameter(null,type,true,c,isString));
	}
	/**
	 * 获得单个存储过程参数对象
	 * @param index 参数索引
	 * @return 返回参数对象
	 */
	public CallParameter get(int index){
		return list.get(index);
	}
	/**
	 * 获得所有存储过程参数集合
	 * @return 返回参数集合
	 */
	public List<CallParameter> getList(){
		return list;
	}
	/**
	 * 获得参数总数
	 * @return 参数大小
	 */
	public int size(){
		return list.size();
	}
}
